Fonction de normalisation de chaine en PHP
3 08 2011Voici une petite fonction bien utile que j’utilise pour normaliser une chaine de caractères en PHP (supprimer les accents, les espaces et tabulations en double…) :
function str_normalize($string){
# Normalise la chaine
$accents = 'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ';
$noaccents = 'aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY';
$string = strtr($string, $accents, $noaccents); # Remplacement accents
$string = strtolower($string); # Minuscules
$string = preg_replace('#[^a-z0-9 ]#i', ' ', $string); # Suppression de tout ce qui n'est pas une lettre, un chiffre ou un espace
$string = preg_replace('#\s+#', '_', $string); # Normalisation blancs (espaces, tabulations)
$string = trim($string);
return $string;
}
Si vous êtes en UTF-8 (ce qui est le cas de wordpress par exemple), il faut y apporter 2 petites modifications (la fonction mb_strtolower n’éxiste pas en PHP4) :
$string = strtr($string, utf8_decode($accents), $noaccents); # Remplacement accents $string = mb_strtolower($string); # Minuscules
Enjoy ![]()













